/******************** NG.Respate(C)  **********************************
* 产品名称: Respate 科技
* 文件名称: main.c
* 程序作者: 雷帕特公司(南宫子萍)
* 程序版本: V1.1														   
* 编制日期: 2019/10/10
* 功能描述: 线性表链式结构
* QQ:		2085827949
**********************************************************************/
#ifndef __FLIGHT_H__
#define __FLIGHT_H__
#include "stdio.h"
#include "stdlib.h"
#include <string.h>
#include "LinkList.h"
#include "utils.h"

#include <sys/types.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "LapString.h"

// #define CFG_FLY_NAME_SIZE		14	//最大名字长度
// #define CFG_USER_PASSWD_SIZE	10	//最大密码长度
#define CFG_FLY_DATA_DIR "./data/flight"
#define CFG_FLY_DATA "/flight.dat"
#define CFG_FLY_SRC_SIZE 1024

//航班链表节点
typedef struct flight{
	char number[10];	//航班号
	char staddress[10];	//起点站
	char arraddress[15];//终点站
	char date[15];		//班期
	char type;			//机型
	char stime[10];		//起飞时间
	int price;			//票价1

	void* owenr;		//指向链表的所有者
}Flight;

//定义飞机航班链表类型
typedef struct 
{
	LinkList* listHead;
	char srcDir[1024];		//文件路径
}FlightList;


extern int showMode;   //

//是否显示头信息
#define isShowFlightHeadInfo(bool) (showMode=!bool)

FlightList* flightInit(char* src);
int registerFlight(FlightList* flightList);
int deleteFlight_ByName(FlightList* flightList,char* name);
void flightSave(FlightList* flightList);
void showeFlightInfo(Flight* flight);
void showeAllFlight(FlightList* flightList);
int getFilghtNumber(FlightList* flightList);

void deleteFlight(Flight* flight);
Flight* getFlight_byName(FlightList* flightList,char* name);
int addFlight(Flight* flight);
FlightList* decodeFlightFile(char* src);
Flight* decodeFlight(char* src);


#endif
